﻿<?php
/*
* Slouží pro vypisování inzerátu z databáze
* autor: Ondřej Wojewoda
*/
class vypis
{
	private $zaznamy_query;
	private $serazeni;
	private $limit;
	private $filtr;
	private $filtr_bez_isbn;
	private $sFiltry;
	
	public function __construct($sFiltry = false,$limit = false)
	{
		$this->limit = $limit;
		$this->sFiltry = $sFiltry;
		$this->serazeni = "ORDER BY `datum_pridani` DESC";
	}
	public function udelejVse()
	{
		if($this->sFiltry)
		{
			$this->filtry();
			$this->prevodProQuery();
		}
		if(isset($_GET["fulltext"]))
			$this->fulltext();
		else
			$this->nactiInzeraty();
		$this->vykresleniInzeratu();	
	}
	private function filtry()
	{
			echo "  <form method='get'>
				<select class='filtr, mameRadiFiltry' name='predmet' size='1'> 
					<option selected='selected' >Předmět</option>";
					$predmety_query = mysqli_query($GLOBALS["pripojeni"],"SELECT predmet FROM predmety ORDER BY  `hledano` DESC ");
					foreach($predmety_query as $predmet)
					{
						if($predmet["predmet"] == $_GET["predmet"])
						{
							/*Statistika o hledání předmětů - využívá se u řazení */
							mysqli_query($GLOBALS["pripojeni"],"UPDATE `predmety` SET `hledano`= hledano + 1 WHERE `predmet` = '".$predmet["predmet"]."'");
							echo "<option selected>";
							echo $predmet["predmet"];
							echo "</option>";
						}
						else 
						{
							echo "<option>";
							echo $predmet["predmet"];
							echo "</option>";	
						}
						
					}
				echo "</select>
				<select class='filtr, mameRadiFiltry' name='rocnik' size='1'> 
					<option selected='selected'>Ročník</option>";
					$rocniky_query = mysqli_query($GLOBALS["pripojeni"],"SELECT nazev FROM rocniky");
					foreach($rocniky_query as $rocnik)
					{
						if($rocnik["nazev"] == $_GET["rocnik"])
						{
							echo "<option selected>";
							echo $rocnik["nazev"];
							echo "</option>";
						}
						else 
						{
							echo "<option>";
							echo $rocnik["nazev"];
							echo "</option>";	
						}
					}
				echo "</select>
				<select class='filtr, mameRadiFiltry' name='seradit' size='1'>";
					echo "<option ";
					if($_GET["seradit"] == "Nejnovější") {
						echo "selected='selected'";}
					echo ">Nejnovější</option>";
					echo "<option ";
					if($_GET["seradit"] == "Nejstarší"){
						echo "selected='selected'";}
					echo ">Nejstarší</option>";
					echo "<option ";
					if($_GET["seradit"] == "Nejdražší") {
						echo "selected='selected'";}
					echo ">Nejdražší</option>";
					echo "<option ";
					if($_GET["seradit"] == "Nejlevnější") {
						echo "selected='selected'";}
					echo ">Nejlevnější</option>";
				echo "</select>";
				echo "<br /><br />
				<div class='filtrovat2'>
				<input name = 'filtr' class='filtrovat' type = 'submit' value = 'Filtrovat'/>
				</div>
			</form>
		</div>
		</div>
        </div>
   		<div class='line'></div>";
	}
	private function prevodProQuery()
	{
		if(isset($_GET["predmet"]) and $_GET["predmet"] != "Předmět" and !(isset($_GET["rocnik"]) and $_GET["rocnik"] != "Ročník" ))
		{//Pokud je nastaven jenom filtr na předmět
			$id_predmetu = mysqli_query($GLOBALS["pripojeni"],"SELECT id FROM `predmety` WHERE `predmet` = '".$_GET["predmet"]."'  ");
			$id_predmetu = mysqli_fetch_array($id_predmetu);
			$this->filtr = " AND knihy.predmet = ".$id_predmetu["id"];
			$this->filtr_bez_isbn = " AND predmet = ".$id_predmetu["id"];
		}
		elseif(isset($_GET["rocnik"]) and $_GET["rocnik"] != "Ročník" and !(isset($_GET["predmet"]) and $_GET["predmet"] != "Předmět"))
		{//Pokud je nastaven jenom filtr na ročník
			$id_rocniku = mysqli_query($GLOBALS["pripojeni"],"SELECT id FROM `rocniky` WHERE `nazev` = '".$_GET["rocnik"]."'  ");
			$id_rocniku = mysqli_fetch_array($id_rocniku);
			$this->filtr = " AND knihy.rocnik = ".$id_rocniku["id"];
			$this->filtr_bez_isbn = " AND rocnik = ".$id_rocniku["id"];
		}
		elseif(isset($_GET["rocnik"]) and $_GET["rocnik"] != "Ročník" and isset($_GET["predmet"]) and $_GET["predmet"] != "Předmět")
		{//Pokud jsou nastaveny oba dva filtry
			$id_predmetu = mysqli_query($GLOBALS["pripojeni"],"SELECT id FROM `predmety` WHERE `predmet` = '".$_GET["predmet"]."'  ");
			$id_predmetu = mysqli_fetch_array($id_predmetu);
			$id_rocniku = mysqli_query($GLOBALS["pripojeni"],"SELECT id FROM `rocniky` WHERE `nazev` = '".$_GET["rocnik"]."'  ");
			$id_rocniku = mysqli_fetch_array($id_rocniku);
			$this->filtr = " AND knihy.predmet = ".$id_predmetu["id"]." and knihy.rocnik = ".$id_rocniku["id"];
			$this->filtr_bez_isbn = " AND predmet = ".$id_predmetu["id"]." and rocnik = ".$id_rocniku["id"];
		}
		else
		{
			$this->filtr = "";
			$this->filtr_bez_isbn = "";
		}
		switch($_GET["seradit"])
		{
			case "Nejdražší":
				$this->serazeni = "ORDER BY `cena` DESC";
				break;	
			case "Nejlevnější":
				$this->serazeni = "ORDER BY `cena` ASC";
				break;
			case "Nejstarší":
				$this->serazeni = "ORDER BY `datum_pridani` ASC";
				break;
			default:
				$this->serazeni = "ORDER BY `datum_pridani` DESC";
				break;
		}
	}
	private function nactiInzeraty()
	{
		if(is_numeric($this->limit))
		{
			$limitQuery = "LIMIT ".$this->limit;	
		}
		$this->zaznamy_query = mysqli_query($GLOBALS["pripojeni"],"SELECT CONCAT(CONVERT(inzerat.id, char), 'isbn') AS id, knihy.nazev, `cena`,`popis`, `datum_pridani`, inzerat.isbn  FROM  `inzerat` JOIN `knihy` ON knihy.isbn = inzerat.isbn WHERE `platnost_od` >= (CURRENT_DATE - INTERVAL 1 MONTH)".$this->filtr." UNION ALL SELECT `id`, `nazev`, `cena`, `popis`, `datum_pridani`, NULL AS `falesne_isbn`  FROM `inzerat_bez_isbn` WHERE `platnost_od` >= (CURRENT_DATE - INTERVAL 1 MONTH)".$this->filtr_bez_isbn." ".$this->serazeni." ".$limitQuery."");
	}
	private function fulltext()
	{
		if(is_numeric($this->limit))
		{
			$limitQuery = "LIMIT ".$this->limit;	
		}
		$fulltext = htmlspecialchars(mysqli_real_escape_string($GLOBALS["pripojeni"],$_GET["fulltext"]));
		$this->zaznamy_query = mysqli_query($GLOBALS["pripojeni"], "SELECT CONCAT(CONVERT(inzerat.id, char), 'isbn') AS id, knihy.nazev, `cena`,`popis`, `datum_pridani`, inzerat.isbn  FROM  `inzerat` JOIN `knihy` ON knihy.isbn = inzerat.isbn WHERE (knihy.nazev LIKE '%$fulltext%' OR inzerat.popis LIKE '%$fulltext%' OR inzerat.isbn LIKE '%$fulltext%') AND `platnost_od` >= (CURRENT_DATE - INTERVAL 1 MONTH)".$this->filtr." UNION ALL SELECT `id`, `nazev`, `cena`, `popis`, `datum_pridani`, NULL AS `falesne_isbn` FROM `inzerat_bez_isbn` WHERE (`nazev` LIKE '%$fulltext%' OR `popis` LIKE '%$fulltext%') AND `platnost_od` >= (CURRENT_DATE - INTERVAL 1 MONTH)".$this->filtr_bez_isbn." ".$this->serazeni." ".$limitQuery."");
	}
	/*
	* Vykresluje obrázek, podle předaného isbn
	* param string - id inzerátu, pokud je s ISBN musí obsahovat za číslem sufix isbn
	*/
	public function vykresliObrazek($id,$isbn = "", $height = 250, $width = 225, $cesta = "img")
	{
		/* Obrazky určitého izerátu bez isbn */
		if(file_exists("$cesta/id/".$id.".jpg "))
		{
			echo "<img src='$cesta/id/".$id.".jpg' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/id/".$id.".jpeg "))
		{
			echo "<img src='$cesta/id/".$id.".jpeg' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/id/".$id.".pjpeg "))
		{
			echo "<img src='$cesta/id/".$id.".pjpeg' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/id/".$id.".png "))
		{
			echo "<img src='$cesta/id/".$id.".png' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/id/".$id.".gif "))
		{
			echo "<img src='$cesta/id/".$id.".gif' height='$height' width='$width' >";
		}
		/* Výchozí obrázky knih */
		elseif(file_exists("$cesta/isbn/".$isbn.".jpg "))
		{
			echo "<img src='$cesta/isbn/".$isbn.".jpg' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/isbn/".$isbn.".jpeg "))
		{
			echo "<img src='$cesta/isbn/".$isbn.".jepg' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/isbn/".$isbn.".pjpeg "))
		{
			echo "<img src='$cesta/isbn/".$isbn.".pjpeg' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/isbn/".$isbn.".png "))
		{
			echo "<img src='$cesta/isbn/".$isbn.".png' height='$height' width='$width' >";
		}
		elseif(file_exists("$cesta/isbn/".$isbn.".gif "))
		{
			echo "<img src='$cesta/isbn/".$isbn.".gif' height='$height' width='$width' >";
		}
		/* Když není ani jeden */
		else
		{
			echo "<img src='$cesta/nedostupnyObrazek.png' height='$height' width='$width' >";
		}
	}
	private function vykresleniInzeratu()
	{
		echo "<div class='bilePozadi'>";
		echo "<br /><br /><div class='obsah'>
			  <div class='obalNabidek'>";
		$i = 0;
		foreach($this->zaznamy_query as $inzerat)
		{
			echo "<a class='nepodtrhavat' href='detail.php?id=".$inzerat["id"]."'>";
			if(($i%4) == 0 and $i !=0)
			{
				echo "</div>";
			}
			if(($i%4) == 0)
			{
				echo "<div class='obalNabidek2'>";
			}
			echo "<div class='nabidka' >";
			$this->vykresliObrazek($inzerat["id"],$inzerat["isbn"]);
			echo "<h4>".$inzerat["nazev"]."</h4>";
			echo "<h5>".$inzerat["cena"].",-</h5>";
			echo "<div class='zacerniToSakra'>";
			echo zkraceni($inzerat["popis"]);
			echo "<br /><br />".date("j.n.Y H:i",strtotime($inzerat["datum_pridani"]));	
			echo "</div>";
			echo "</div>";
			echo "<div class='roztahovac'></div>";
			echo "</a>";
			$i++;
		}
		echo "</div>";
		echo "</div>";	
	}
}